package com.jxtpro.service.area;

import java.util.List;

import org.apache.log4j.Logger;

import com.alibaba.druid.util.StringUtils;
import com.jfinal.kit.Ret;
import com.jfinal.plugin.activerecord.Db;
import com.jfinal.plugin.activerecord.Record;
import com.jxtpro.model.Area;

public class AreaService {

	final Logger loger = Logger.getLogger(getClass());
	public static final AreaService me = new AreaService();
	
	final Area dao = new Area();
	
	/**
	 * 初始化数据
	 * @return
	 */
	public Ret initData(){
		loger.info("---------- 初始化地区数据 ----------");
		try{
			String sql = "select id, pid,cid,name from area";
			List<Record> areas = Db.find(sql);
			return Ret.create("areas",areas);
		}catch(Exception e){
			loger.info("---------- 初始化地区异常 ----------");
			loger.error(e.getMessage());
			return Ret.create("areas", null);
		}
	}
	/**
	 * 修改节点名称
	 * @param dao
	 * @return
	 */
	public Ret update(Integer id, String cid,Integer pid, String name){
		try{
			if(id!=null){
				int rt = Db.update("update area set cid=?,pid=?,name=? where id=?", cid,pid,name,id);
				if(rt>=1){
					return Ret.ok();
				}
			}
			return Ret.fail();
		}catch(Exception e){
			loger.error("----- 更新失败 ------");
			loger.error(e.getMessage());
			return Ret.fail();
		}
	}
	/**
	 * 新增节点
	 * @param cid
	 * @param pid
	 * @param name
	 * @return
	 */
	public Ret save(String cid, Integer pid, String name) {
		try{
			if(!StringUtils.isEmpty(cid)||pid!=null||!StringUtils.isEmpty(name)){
				int rt = Db.update("insert into area (cid,pid,name) values(?,?,?)", cid,pid,name);
				if(rt>=1){
					return Ret.ok();
				}
			}
			return Ret.fail();
		}catch(Exception e){
			loger.error("----- 新增失败 ------");
			loger.error(e.getMessage());
			return Ret.fail();
		}
	}
	/**
	 * 删除节点
	 * @param cid
	 * @return
	 */
	public Ret delete(Integer cid) {
		try{
			if(cid!=null){
				//删除当前 节点 
				int rt = Db.update("delete from area where cid=?", cid);
				int rt2 = Db.update("delete from area where pid=?", cid);
				if(rt>=0 && rt2>=0){
					return Ret.ok();
				}
			}
			return Ret.fail();
		}catch(Exception e){
			loger.error("----- 新增失败 ------");
			loger.error(e.getMessage());
			return Ret.fail();
		}
	}
}
